Programmable controllers are well known systems for operating industrial equipment, such as assembly lines and machine tools, in accordance with a stored program. In these controllers, a stored control program is executed to examine the condition of specific sensing devices on the controlled equipment, and to energize or de-energize selected operating devices on that equipment contingent upon the status of one or more of the examined sensing devices. The program not only manipulates single-bit input and output data representing the state of the sensing and operating devices, but also performs arithmetic operations, timing and counting functions, and more complex processing operations.
In carrying out its functions, the programmable controller processor is expected to execute well-known programmable controller type instructions. Such instructions have become quite standardized in the industry and they are directly associated with the elements of a ladder logic diagram which is easily understood by control engineers. Program panels such as those described in U.S. Pat. Nos. 3,813,649 and 4,070,702 have been developed to assist the user in developing and editing ladder logic control programs comprised of such programmable controller instructions.
Although ladder logic control programs have application in operating a wide variety of industrial equipment, many machines have defined states with specific events indicating when a transition should occur from one state to another. This equipment can be governed by a sequencer type controller such as those described in U.S. Pat. Nos. 3,974,484 and 5,042,002. This latter type of controller enables malfunctions of the equipment to be readily diagnosed as a record is kept of the state in which the malfunction occurred and the events that lead to the problem.
Heretofore sequencer type controllers required the user to specify the operation of the equipment in terms of states and conditions signalling when to switch states. For example, the directed sequencer instruction described in the U.S. Pat. No. 5,042,002 required that logic levels for the inputs and outputs be defined for each operating state, along with each next state to go to and the logic level change of a given input that causes a transition to that next state. Whereas control engineers are familiar with ladder diagrams and other graphical representations of machine operation, they are not accustomed to defining the operation in terms of state diagrams and converting the diagram into data tables for a sequencer controller. Thus engineers had to learn an entirely different way of defining machine operation in order to use sequencer controllers. It is desirable to facilitate the definition of the functions of a machine in terms of operating states.